package com.lft.juc03.lock8;

import java.util.concurrent.TimeUnit;

/**
 * 线程8锁——锁7.
 * 一个静态同步方法，一个非静态同步方法，两个对象
 * 静态同步方法的调用者是Class，Class是唯一。
 * 普通同步方法的调用者是this,类的对象。
 * 锁不一样。无需争抢。
 */
public class Lock7 {
	public static void main(String[] args) {
		Phone7 phone1 = new Phone7();
		Phone7 phone2 = new Phone7();
		new Thread(() -> {phone1.senSms();}, "A").start();
		try {TimeUnit.SECONDS.sleep(2);} catch (InterruptedException e) {e.printStackTrace();}
		new Thread(() -> {phone2.call();}, "B").start();
	}
}

class Phone7 {
	public static synchronized void senSms() {
		// 新增Thread.sleep()给 senSms()
		try {TimeUnit.SECONDS.sleep(4);} catch (InterruptedException e) {e.printStackTrace();}
		System.out.println(Thread.currentThread().getName() + " 发短信");
	}
	
	public synchronized void call() {
		System.out.println(Thread.currentThread().getName() + " 打电话");
	}
}